// ==UserScript==
// @name         电商一键铺货
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Add a download button to save the HTML source of the current webpage
// @author       HankSu
// @match        *://item.jd.com/*
// @match        *://*.alibaba.com/product*
// @match        *://detail.tmall.com/*
// @match        *://item.taobao.com/*
// @match        *://detail.1688.com/*
// @match        *://shopatmars.com/*
// @match        *://lurevibe.com/*
// @grant        GM_xmlhttpRequest
// @require      https://code.jquery.com/jquery-3.6.0.min.js
// ==/UserScript==

(function () {
    'use strict';
    console.log("油猴脚本执行开始....")
    var PRODUCT = {}
    function init() {
        PRODUCT = {
        "productName": "",
        "price": "",
        "priceBeginAmount": "",
        "productCommentAmount": "",
        "logisticsCity": "",
        "logisticsText": "",
        "saleNum": "",
        "services": "",
        "productImgs": [],
        "companyName": "",
        "tpYear": -1,
        "productAttrs": {},
        "pageUrl": "",
        "plat": "",
        "detail": "",
        "site": "",
        "productType": "",
        "uploadImg": "",
        "detailImgs": [],
        "wooProductType": "simple",
        "variations": [],
        "newProductName": ""
    }
    }

    //获取主域名部分，比如1688.com来传给后台，判断是哪个平台
    function extractMainDomain(url) {
        var hostname = new URL(url).hostname;
        var domainParts = hostname.split('.');
        if (domainParts.length > 1) {
            // 判断是否是 IP 地址
            if (/^\d+\.\d+\.\d+\.\d+$/.test(hostname)) {
                return hostname;
            } else {
                // 获取主域名并去掉顶级域名部分
                return domainParts[domainParts.length - 2];
            }
        } else {
            return hostname;
        }
    }

    //传送平台
    // 获取当前页面的 URL
    var currentUrl = window.location.href;
    var plat = extractMainDomain(currentUrl);

    //改变页面的html元素
    function changeMode() {
        // 通过父元素绑定点击事件处理程序，并指定要监听的子元素选择器
        $("body").on("click", "img", function () {
            // 在点击事件中执行你想要的操作，例如弹出图片的 alt 文本
            $(this).remove();
        });
    }

    function createUI2(){
        var $div = $('<div id="shz-common-control-panel"></div>')
        $div.css({
            "position": 'fixed',
            "bottom": '5%', // 距离底部的距离
            "right": '10px', // 距离右侧的距离
            "zIndex": '15000', // 设置元素的堆叠顺序
            "background-color": "red",
            "display": "flex",
            "border": "1px solid black", // 边框宽度为1，颜色为黑色
            "box-shadow": "2px 2px 4px rgba(0, 0, 0, 0.2)", // 添加阴影
            "padding": "5px", // 内边距为5px
            "flex-direction": "column" /* 设置为垂直布局 */
        });

        var $radio1 = `<form id="shz-debug-mode-select">
        <label for="option1">调试ON:</label>
        <input type="radio"  name="options" value="是" >
        <label for="option2">OFF:</label>
        <input type="radio"  name="options" value="否" checked>
        </form>`;
        $div.append($radio1);

        var $radio2 = `<form id="shz-download-detail-img-select">
        <label for="option1">下载详情图片ON:</label>
        <input type="radio"  name="options" value="是" >
        <label for="option2">OFF:</label>
        <input type="radio"  name="options" value="否" checked>
        </form>`;
        $div.append($radio2);

        var $radio3 = `<form id="shz-upload-img-select">
        <label for="option1">上传图片到站点ON:</label>
        <input type="radio"  name="options" value="是" >
        <label for="option2">OFF:</label>
        <input type="radio"  name="options" value="否" checked>
        </form>`;
        $div.append($radio3);


        var $select4=$('<select id="shz-site-select">' +
            '<option value="local">本地</option>' +
            '<option value="chicglint">Chiclint</option>' +
            '<option value="huzis">Huzis</option>' +
            '<option value="hichemi">Hichemi</option>' +
            '<option value="tinyshopee">Tinyshopee</option>' +
            '<option value="crafteyeshadow">Crafteyeshadow</option>' +
            '</select>');
        $div.append($select4);

        var $radio = `<form id="woo-product-type-radio">
            <label for="option1">普通产品:</label>
            <input type="radio"  name="options" value="simple" checked>

            <label for="option2">变量产品:</label>
            <input type="radio"  name="options" value="variable">
        </form>`;
        $div.append($radio);

        var $radio4 = `<form id="woo-product-pre-sale">
            <label for="option1">现货:</label>
            <input type="radio"  name="options" value="instock" checked>

            <label for="option2">预售:</label>
            <input type="radio"  name="options" value="presale">
        </form>`;
        $div.append($radio4);

        var $select3=$('<input id="shz-product-type-select">其他' + '</input>');
        $div.append($select3);

        var $select4=$('<select id="shz-product-catname-select">' +
            '<option value="Default">默认产品细分</option>' +
            '<option value="MixEyeshadowPalette">综合眼影盘</option>' +
            '<option value="ShimmerEyeshadowPalette">Shimmer眼影盘</option>' +
            '<option value="MateEyeshadowPalette">哑光盘</option>' +
            '<option value="Duochrome">单个变色龙</option>' +
            '<option value="Multichrome">单个超级变色龙</option>' +
            '<option value="MateEyeshadow">单个哑光</option>' +
            '<option value="MetallicEyeshadow">单个金属</option>' +
            '<option value="ShimmerEyeshadow">单个珠光</option>' +
            '</select>');
        $div.append($select4);

        var $button = $('<button id="shz-save-data-btn" style="cursor:pointer;background-color:blue;color:white;border:none;padding:10px;margin-top:3px">下载数据</button>');
        $div.append($button);
        $button.click(function () {
            sendDataToServer();
        });
        var $button2 = $('<button id="shz-change-mode-btn" style="cursor:pointer;background-color:blue;color:white;border:none;padding:10px;margin-top:3px">编辑模式</button>');
        $div.append($button2);
        $button2.click(function () {
            changeMode();
        });
        $("body").append($div);
        console.log("控制面板 UI 已经创建完成")
    }

    // 格式化时间戳
    function formatTimestamp(timestamp) {
        const date = new Date(timestamp);
        const year = date.getFullYear();
        const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始，需要加1
        const day = String(date.getDate()).padStart(2, '0');
        const hours = String(date.getHours()).padStart(2, '0');
        const minutes = String(date.getMinutes()).padStart(2, '0');
        const seconds = String(date.getSeconds()).padStart(2, '0');
        return `${year}${month}${day}_${hours}${minutes}${seconds}`;
    }

    function getTmallData() {
        PRODUCT.productName = $("h1[class*=ItemHeader--mainTitle]").first().text();
        PRODUCT.companyName = $("div[class*=ShopHeader--title]").first().text();
        PRODUCT.saleNum = $("span[class*=ItemHeader--salesDesc]").first().text();
        PRODUCT.logisticsCity = $("div[class*=delivery-from-addr]").first().text();
        PRODUCT.logisticsText = $("div[class*=delivery-info]").first().text();
        var $productImgs = $("ul[class*=PicGallery--thumbnails]").first().find("img");
        $productImgs.each(function () {
            //gw.alicdn.com/imgextra/i1/3937219703/O1CN01gplFhO2LY1xEQwWOF_!!3937219703-0-C2M.jpg_110x10000Q75.jpg_.webp
            var url = $(this).attr('src');
            var index = url.indexOf(".jpg");
            var result = url.substring(0, index + 4); // 保留第一个.jpg后的部分，加上.jpg本身,因为webp是缩略图
            PRODUCT.productImgs.push("https:"+result)
        });
        PRODUCT.price = $("span[class*=Price--priceText]").first().text();
        PRODUCT.priceBeginAmount = "1";
        PRODUCT.productCommentAmount = "没有数据";
        var $attrs = $("span[class*=Attrs--attr]")
        $attrs.each(function () {
            var attrText = $(this).text();
            var attrTextArr = attrText.split("：");
            var name = attrTextArr[0];
            var value = attrTextArr[1];
            PRODUCT.productAttrs[name] = value;
        })
        //找服务保障
        $("span[class*=Promotion--subtitle]").each(function () {
            var subtitle = $(this).text();
            var service = "";
            if (subtitle.includes("保障")) {
                PRODUCT.services = $(this).next().text();
            }
        });
        //检查是否下载详情图片
        var detailImg = $('#shz-download-detail-img-select input[type="radio"]:checked').val();
        if (detailImg == "是") {
            $(".desc-root").find("img[align='absmiddle']").each(function () {
                PRODUCT.detailImgs.push($(this).attr('src'));
            });
        }
        // console.log(product)
    }

    function getJdData() {
        PRODUCT.companyName = $('a[clstag*=dianpuname1]').first().text().replace(/\n/g, '').replace(/\s/g, '');
        //去掉换行，再去空格
        PRODUCT.productName = $("div[class='sku-name']").first().text().replace(/\n/g, '').replace(/\s/g, '');
        PRODUCT.saleNum = "没有数据";
        PRODUCT.logisticsCity = $("#summary-service").text().replace(/\s/g, '');
        PRODUCT.logisticsText = "没有数据";
        var $productImgs = $("ul[class=lh]").first().find("img");
        $productImgs.each(function () {
            // //img11.360buyimg.com/n5/jfs/t1/247925/37/48…86150/65dde811F9714c430/8c1267d25a674181.jpg.avif
            var url = $(this).attr('src');
            // var index = url.indexOf(".jpg");
            // var result = url.substring(0, index + 4); // 保留第一个.jpg后的部分，加上.jpg本身,因为webp是缩略图
            PRODUCT.productImgs.push("https:"+url)
        });
        PRODUCT.price = $("span[class=price]").first().text();
        PRODUCT.priceBeginAmount = "1";
        PRODUCT.productCommentAmount = $("#comment-count").text().replace(/\n/g, '').replace(/\s/g, '');
        var $attrs = $("ul[class*='p-parameter-list']").find("li")
        $attrs.each(function () {
            var attrText = $(this).text().replace(/\n/g, '').replace(/\s/g, '');
            var attrTextArr = attrText.split("：");
            var name = attrTextArr[0];
            var value = attrTextArr[1];
            PRODUCT.productAttrs[name] = value;
        })
        //找服务保障
        PRODUCT.services = $("#ns_services").text();
        //检查是否下载详情图片
        var detailImg = $('#shz-download-detail-img-select input[type="radio"]:checked').val();
        if (detailImg == "是") {
            $("div[class*='ssd-module']").each(function () {
                 // 获取背景图片链接
                var backgroundImageUrl = $(this).css('background-image');
                // 提取背景图片链接
                backgroundImageUrl = backgroundImageUrl.replace('url("', '').replace('")', '');
                console.log(backgroundImageUrl)
                // 判断是否以 "https" 开头
                if (backgroundImageUrl.startsWith("https")) {
                    PRODUCT.detailImgs.push(backgroundImageUrl);
                }
            });
        }
        console.log(PRODUCT)
    }

   function getAlibabaData() {
        PRODUCT.productName = $('.product-title-container').find("h1").first().text().replace(/\n/g, '').trim();
        //去掉换行，再去空格
        PRODUCT.companyName = $(".company-name").find("a").first().text().replace(/\n/g, '').trim();
        PRODUCT.saleNum = $(".detail-review-item.detail-separator").last().text().replace(/\n/g, '').trim();
        PRODUCT.logisticsCity = "没有数据";
        PRODUCT.logisticsText = "没有数据";
        PRODUCT.tpYear = $(".company-life.detail-separator").first().text().replace(/\n/g, '').trim();
        var $productImgs = $('div[data-com="ProductImageView"] img');
        $productImgs.each(function () {
            // 	s.alicdn.com/@sc04/kf/H2d05a7d14f5048c08c1db66db94ada870.jpg_140x140.jpg
            var url = "https:" + $(this).attr('src');
            //可能是jpg也可能是png
            // var index = url.indexOf(".jpg");
            // if (index <= -1)
            // {
            //     index = url.indexOf(".png");
            // }
            // var result = url.substring(0, index + 4); // 保留第一个.jpg后的部分，加上.jpg本身,因为获取到的是缩略图
            // result = result + ".transtoavif"//做avif的处理
            PRODUCT.productImgs.push(url)
        });
        PRODUCT.price = $("div[class=product-price]").first().find(".price").first().text().replace(/\n/g, '').trim().split("-")[0].replace("$","").trim();
        PRODUCT.priceBeginAmount = $("div[class=product-price]").first().find(".min-moq").first().text().replace(/\n/g, '').trim();
        if (PRODUCT.price == null || PRODUCT.price == undefined || PRODUCT.price == '')
        {
            console.log("sss")
            PRODUCT.price = $('.promotion-price .normal').first().text().replace(/\n/g, '').trim().split("-")[0].replace("$","").trim();
        }
        if (PRODUCT.priceBeginAmount == null || PRODUCT.priceBeginAmount == undefined || PRODUCT.priceBeginAmount == '')
        {
            PRODUCT.priceBeginAmount = $("div[class=product-price]").first().find(".quality").first().text().trim().split("-")[0].trim();
        }
        PRODUCT.productCommentAmount = $(".detail-review-item.detail-review").first().text().replace(/\n/g, '').trim();
        var $attrs = $("div[class*='attribute-item']")
        $attrs.each(function () {
            var name = $(this).find(".left").text().replace(/\n/g, '').trim();
            var value = $(this).find(".right").text().replace(/\n/g, '').trim();
            PRODUCT.productAttrs[name] = value;
        })
        //找服务保障
        var service = "样品:\n"
        $(".sample-item").each(function () {
            var sampleText = $(this).text().replace(/\n/g, '').trim();
            service += sampleText + "\n";
        })
         service += "定制化:\n"
         $(".customization-item").each(function () {
            var customizationText = $(this).text().replace(/\n/g, '').trim();
            service += customizationText + "\n";
        })
        PRODUCT.services = service;
        //检查是否下载详情图片
        var detailImg = $('#shz-download-detail-img-select input[type="radio"]:checked').val();
        if (detailImg == "是") {
            $("#module_product_specification").find('img').each(function () {
                 // 获取背景图片链接
                var url = $(this).attr('src');
                if (!url.startsWith("https")) {
                    url = "https:"+url
                }
                PRODUCT.detailImgs.push(url);
            });
        }

        //处理变量产品
        if ($('#woo-product-type-radio input[type="radio"]:checked').val() == "variable")
        {
            console.log("handle variation");
            //获取sku信息作为变量属性
            var variations = {};
            if ($(".sku-dialog-content").find(".sku-info").length <= 0){
                alert("没有找到sku数据，先点击sku弹出sku面板")
                return -1;
            }
            var attrName = "unknown";
            $(".sku-dialog-content").find(".sku-info").first().children().each(function () {
                // 判断当前元素是否为 h4 标签
                if ($(this).is('h4'))
                {
                    // 获取 h4 标签的文本内容
                    var h4Text = $(this).text().trim();
                    console.log('h4 标签文本：' + h4Text);
                    var strArray = h4Text.split(".");
                    attrName = strArray[1];

                }
                else if ($(this).hasClass('info-item')) {
                    // console.log($(this));
                    var skus = [];
                    //获取当前属性下的所有sku
                    // 如果当前元素的类名包含 info-item
                    $(this).children().each(function () {
                        var sku = {}
                        //获取当前sku下的信息
                        //获取图片
                        var url = $(this).find(".last-sku-first-item").find('img').first().attr("src");
                        // console.log($(this));
                        // console.log($(this).find(".last-sku-first-item"));
                        // console.log($(this).find(".last-sku-first-item").find('img'));
                        //可能是jpg也可能是png
                        var index = url.indexOf(".jpg");
                        if (index <= -1) {
                            index = url.indexOf(".png");
                        }
                        var result = url.substring(0, index + 4); // 保留第一个.jpg后的部分，加上.jpg本身,因为获取到的是缩略图
                        result = result + ".transtoavif"//做avif的处理
                        sku.img = result;

                        //获取sku名称
                        sku.name = $(this).find(".last-sku-first-item").children().last().text();

                        // 获取价格
                        sku.price = $(this).children().eq(1).text();
                        skus.push(sku);
                    });
                    variations[attrName] = skus;
                };
            });
            PRODUCT.variations = variations;
        }
        console.log(PRODUCT)
    }

    function getTaobaoData() {
        PRODUCT.companyName = $('div[class*=ShopHeader--title]').first().text().replace(/\n/g, '').replace(/\s/g, '');
        PRODUCT.productName = $('h1[class*=ItemHeader--mainTitle]').first().text().replace(/\n/g, '').replace(/\s/g, '');
        PRODUCT.saleNum = $('span[class*=ItemHeader--salesDesc]').first().text().replace(/\n/g, '').replace(/\s/g, '');
        PRODUCT.logisticsCity = $('.delivery-from-addr').first().text().replace(/\n/g, '').replace(/\s/g, '').replace("至", '');
        PRODUCT.logisticsText = "";
        //获取主图
        var productImgArr = []
        $("img[class*=PicGallery--thumbnail]").each(function () {
            var src = $(this).attr('src');
            if ($(this).attr('src').indexOf("https") <= -1) {
                src = "https:" + src;
            }
            //taobao的jpg格式图片是avif
            if (src.indexOf(".jpg") > -1) {
                var result = src.substring(0, src.indexOf(".jpg") + 4); // 保留第一个.jpg后的部分，加上.jpg本身,
                result = result + ".transtoavif"//做avif的处理
                src = result;
            }
            productImgArr.push(src);
        });
        PRODUCT.productImgs = productImgArr;
        PRODUCT.price = $('span[class*=Price--priceText]').first().text().replace(/\n/g, '').replace(/\s/g, '');
        PRODUCT.priceBeginAmount = "1";
        PRODUCT.productCommentAmount = "没有数据";
        //检查是否下载详情图片
        var detailImg = $('#shz-download-detail-img-select input[type="radio"]:checked').val();
        var detailImgArray = [];
        if (detailImg == "是") {
            $(".desc-root").find("img.lazyload").each(function () {
                if ($(this).attr('src').indexOf("getAvatar")<=-1)
                {
                    var src = $(this).attr('src');
                    if ($(this).attr('src').indexOf("https")<=-1)
                    {
                        src = "https:"+src;
                    }
                    //taobao的jpg格式图片是avif
                    if (src.indexOf(".jpg") > -1)
                    {
                        var result = src.substring(0, src.indexOf(".jpg") + 4); // 保留第一个.jpg后的部分，加上.jpg本身,
                        result = result + ".transtoavif"//做avif的处理
                        src = result;
                    }
                    detailImgArray.push(src);

                }
            });
        }
        PRODUCT["detailImgs"] = detailImgArray
    }

    function get1688Data() {
        var find_attr = {'companyName':'店铺名字','tpYear':'入驻年数'}
        // 获取第一个 class 为 "step-price-item" 的 div 元素,读取价格
        PRODUCT["productName"]=document.title;//产品名称
        PRODUCT["price"]=$('.price-text').first().text();//起订价格
        PRODUCT["priceBeginAmount"]=$('.unit-text').first().text();//起订数量
        PRODUCT["productCommentAmount"]=$('.title-info-number').first().text();//多少条评价
        PRODUCT["logisticsCity"]=$('.logistics-city').first().text();//发货城市
        PRODUCT["logisticsText"]=$('.logistics-text').first().text();//发货时效
        PRODUCT["saleNum"] = $(".title-info-number").eq(1).text();//最近一年成交
        console.log("成交:"+$(".title-info-number").eq(1).text())
        //获取服务条款
        var servicesText=""
        $('.service-item-text').each(function(index, element) {
            // 使用 $(this) 获取当前元素，并使用 .text() 方法获取文本内容
            const text = $(this).text();
            servicesText = servicesText+text+"|";
        });
        PRODUCT["services"]=servicesText
        //获取商品主图链接
        PRODUCT["productImgs"]=[]
        $('.detail-gallery-img').each(function(index, element) {
            // 使用 $(this) 获取当前元素，并使用 .text() 方法获取文本内容
            const src = $(this).attr("src");
            PRODUCT["productImgs"].push(src)
        });

        PRODUCT["detailImgs"] = []
        if ($('#shz-download-detail-img-select input[type="radio"]:checked').val() == "是"){
             $(".desc-img-loaded").each(function(index, element) {
            // 使用 $(this) 获取当前元素，并使用 .text() 方法获取文本内容
            const src = $(this).attr("src");
            PRODUCT["detailImgs"].push(src)
            });
        }

        // 定义递归函数来遍历json对象查找相应的属性
        function traverse(obj, attr, path = []) {
            for (var key in obj) {
                if (typeof obj[key] === 'object') {
                    // 如果属性是一个对象，则递归遍历它，并传递更新后的路径
                    traverse(obj[key], attr, path.concat(key));
                } else if (Array.isArray(obj[key])) {
                    // 如果属性是一个数组，则遍历数组中的每个元素
                    obj[key].forEach(function (item, index) {
                        // 在路径中加入数组索引
                        traverse(item, attr, path.concat(key + '[' + index + ']'));
                    });
                } else {
                    // 如果是需要查找的属性，则输出并返回其值以及路径
                    if (key.toString() == attr) {
                        PRODUCT[key] = obj[key]
                        return;
                    }
                }
            }
        }
        // 定义递归函数来遍历1688json对象查找商品详情属性，借助1688的商品属性有个特征就是商品属性是存在一个data属性的数组里，以此来判断
        function findDataArray(obj) {
            // 遍历对象的所有属性
            for (let key in obj) {
                if ("data" == key) {
                    if (Array.isArray(obj[key])) {
                        //console.log("命中");
                        return obj[key];
                    }
                }
                // 如果当前属性是一个对象，递归调用该函数
                if (typeof obj[key] == 'object' && obj[key] != null) {
                    var res = findDataArray(obj[key]);
                    if (res) {
                        return res;
                    }
                }
            }
            // 没有找到符合条件的属性，返回 null
            return null;
        }
        //商品详情里的数据
        //1688把数据存储在window对象里，所以有的属性必须要从那里读数据。
        //因为油猴脚本运行在浏览器的沙箱环境中，无法直接访问页面中的全局对象。
        //如果你需要从页面中获取 __STORE_DATA 属性的值，你可以尝试使用 unsafeWindow 对象，但是请注意，unsafeWindow 是一种不安全的访问方式，它可以绕过油猴脚本的沙箱限制，可能会导致安全问题。
        const storeData = unsafeWindow.__STORE_DATA;
        // 调用递归函数来遍历对象
        for (var key in find_attr) {
            console.log("准备查找属性:"+key)
            traverse(storeData, key);
        }
        const initData = unsafeWindow.__INIT_DATA;
        //console.log(initData)
        PRODUCT["productAttrs"]={};
        var detailAttr = findDataArray(initData)
        if(detailAttr){
            detailAttr.forEach(function(item){
                PRODUCT["productAttrs"][item["name"]] = item["value"]
            });
        }
        //处理变量产品
        if ($('#woo-product-type-radio input[type="radio"]:checked').val() == "variable")
        {
            console.log("handle variation");
            //获取sku信息作为变量属性
            var variations = {};
            var attrName = $("#sku-count-widget-wrapper").parent().parent().find(".sku-prop-module-name").first().text();
            var skus = [];
            $("#sku-count-widget-wrapper").find(".sku-item-wrapper").each(function () {
                var sku = {}
                // 获取元素的背景图片 URL
                var backgroundImageUrl = $(this).find(".sku-item-image").css('background-image');
                console.log(backgroundImageUrl)
                // 解析 URL
                var url = undefined
                if(backgroundImageUrl){
                    url = backgroundImageUrl.match(/^url\(["']?(.+?)["']?\)$/);
                }
                if (url) {
                    // 提取 URL
                    var imageUrl = url[1];
                    sku.img = imageUrl;
                    // console.log('背景图片 URL:', imageUrl);
                } else {
                    console.log('未找到背景图片 URL');
                }
                //获取sku名称
                sku.name = $(this).find(".sku-item-name").text();
                // 获取价格
                sku.price = $(this).find(".discountPrice-price").text();
                skus.push(sku);
                variations[attrName] = skus;
            });
            PRODUCT.variations = variations;
        }
    }

    function getShopatmarsData() {
        PRODUCT.productName = $('.ProductMeta__Title').first().text().replace(/\n/g, '').trim();
        //去掉换行，再去空格
        PRODUCT.companyName = "shopatmars";
        PRODUCT.saleNum = "没有数据";
        PRODUCT.logisticsCity = "没有数据";
        PRODUCT.logisticsText = "没有数据";
        PRODUCT.tpYear = "没有数据";
        var $productImgs = $(".Product__SlideshowNavImage");
        $productImgs.each(function () {
            // 	//shopatmars.com/cdn/shop/files/Sd8e00068e21e4eb588e316af611d8312t_1024x.webp?v=1713378237
            //https://shopatmars.com/cdn/shop/files/Sd8e00068e21e4eb588e316af611d8312t_1024x.webp?v=1713378237
            var url = $(this).attr('href');

            PRODUCT.productImgs.push("https:"+url)
        });
        PRODUCT.salePrice = $('.ProductMeta').find('span.Price--highlight').text().replace("$","");
        PRODUCT.price =  $('.ProductMeta').find('span.Price--compareAt').text().replace("$","");
        PRODUCT.priceBeginAmount = "1";

        PRODUCT.productCommentAmount = "没有数据";

        //检查是否下载详情图片
        var detailImg = $('#shz-download-detail-img-select input[type="radio"]:checked').val();
        if (detailImg == "是") {
            PRODUCT["shortText"]=$(".ProductMeta__Description").html()
        }

        //处理变量产品
        if ($('#woo-product-type-radio input[type="radio"]:checked').val() == "variable")
        {
            console.log("handle variation");
        }
        console.log(PRODUCT)
    }

    function getlurevibeData() {
        PRODUCT.productName = $('.product-meta__title').first().text().replace(/\n/g, '').trim();
        //去掉换行，再去空格
        PRODUCT.companyName = "lurevibe";
        PRODUCT.saleNum = "没有数据";
        PRODUCT.logisticsCity = "没有数据";
        PRODUCT.logisticsText = "没有数据";
        PRODUCT.tpYear = "没有数据";
        var $productImgs = $(".product__media-image-wrapper");
        $productImgs.each(function () {
            // 	//shopatmars.com/cdn/shop/files/Sd8e00068e21e4eb588e316af611d8312t_1024x.webp?v=1713378237
            //https://shopatmars.com/cdn/shop/files/Sd8e00068e21e4eb588e316af611d8312t_1024x.webp?v=1713378237
            var $img = $(this).find("img").first();
            var url = $img.attr('src');

            PRODUCT.productImgs.push("https:"+url)
        });
        PRODUCT.salePrice = $('.currDispatch').attr("doubly-currency-usd")/100;
        PRODUCT.price =  PRODUCT.salePrice;
        PRODUCT.priceBeginAmount = "1";

        PRODUCT.productCommentAmount = "没有数据";

        //检查是否下载详情图片
        var detailImg = $('#shz-download-detail-img-select input[type="radio"]:checked').val();
        if (detailImg == "是") {
            PRODUCT["shortText"]=$(".product-tabs__tab-item-content").first().html();
            PRODUCT["shortText"] = PRODUCT["shortText"].replace("You will also be able to track your order in your account.",
                "You will also be able to track your order <a href='https://huzis.com/track-order/'>here</a>.");
            PRODUCT["shortText"] = PRODUCT["shortText"].replace("https://admin.shopify.com/store/7e9ad0/products/service@lurevibe.com", "mailto:huzis@huzis.com");
            PRODUCT["shortText"] = PRODUCT["shortText"].replace("service@lurevibe.com", "huzis@huzis.com");
            PRODUCT["shortText"] = PRODUCT["shortText"].replaceAll("Lurevibe", "Huzis");
            PRODUCT["shortText"] = PRODUCT["shortText"].replaceAll("lurevibe", "huzis");
        }

        //处理变量产品
        if ($('#woo-product-type-radio input[type="radio"]:checked').val() == "variable")
        {
            console.log("handle variation");
        }
    }

    function getData() {
        console.log(plat)
        var resCode = -1;
        if (plat == "tmall") {
            resCode = getTmallData();
        }
        else if(plat == "jd")
        {
            resCode = getJdData();
        }
        else if(plat == "alibaba")
        {
            resCode = getAlibabaData();
        }
        else if(plat == "taobao")
        {
            resCode = getTaobaoData();
        }
        else if(plat == "1688")
        {
            resCode = get1688Data();
        }
        else if (plat=="shopatmars"){
            resCode = getShopatmarsData();
        }
        else if (plat=="lurevibe"){
            resCode = getlurevibeData();
        }
        // console.log(PRODUCT)
        return resCode;
    }

    // 获取页面中 数据，并发送到本地服务器
    function sendDataToServer() {
        //点击之前，删除旧数据
        init()
        var resCode = getData();
        if (resCode == -1)
        {
            console.log("程序出错")
            return;
        }
        PRODUCT["pageUrl"] = currentUrl;

        if ("tmall" == plat) {
            PRODUCT["plat"] = "taobao"
        } else {
            PRODUCT["plat"] = plat;
        }
        //获取传送的站点选项
        var site = $('#shz-site-select').val()
        PRODUCT["site"] = site
        //获取产品类型选项
        var productType = $("#shz-product-type-select").val();
        PRODUCT["productType"] = productType
         //获取产品类型选项
        var productCatName = $("#shz-product-catname-select").val();
        PRODUCT["productCatName"] = productCatName
        //获取产品类型选项
        var uploadImg = $('#shz-upload-img-select input[type="radio"]:checked').val();
        PRODUCT["uploadImg"] = uploadImg
        //重新设置被修改后的产品名称
        var newProductName = $("#shz-product-name-input").val();
        if (newProductName != null && newProductName != undefined && newProductName != '')
        {
             PRODUCT["newProductName"] = newProductName
        }else{
             PRODUCT["newProductName"] = PRODUCT.productName
        }
        //获取woo的产品类型
        PRODUCT.wooProductType = $('#woo-product-type-radio input[type="radio"]:checked').val();
        PRODUCT.saleType = $('#woo-product-pre-sale input[type="radio"]:checked').val();
        // 发送数据到本地服务器
        console.log(PRODUCT)
        if ($('#shz-debug-mode-select input[type="radio"]:checked').val()== "是") {
            return;
        }
          // 按钮变为红色不可点击
        $("#shz-save-data-btn").css({
            'background-color': 'red',
            'cursor': 'not-allowed'
        });
        $("#shz-save-data-btn").text("正在执行操作..");
        $("#shz-save-data-btn").prop('disabled', true); // 禁用按钮
        GM_xmlhttpRequest({
            method: 'POST',
            url: 'http://localhost:8000/postProduct', // 替换为你的 Python 后台地址
            headers: {
                'Content-Type': 'application/json'
            },
            data: JSON.stringify(PRODUCT),
            onload: function (response) {
                $("#shz-save-data-btn").css({
                    'background-color': 'blue',
                    'cursor': 'pointer'
                });
                $("#shz-save-data-btn").text("下载数据");
                $("#shz-save-data-btn").prop('disabled', false); // 禁用按钮
                console.log('Response from Python backend:', response.responseText);
            },
            onerror: function (error) {
                alert("操作失败");
                $("#shz-save-data-btn").css({
                    'background-color': 'blue',
                    'cursor': 'pointer'
                });
                $("#shz-save-data-btn").text("下载数据");
                $("#shz-save-data-btn").prop('disabled', false); // 禁用按钮
                console.error('Error sending JSON data:', error);
            }
        });
    }

    window.onload = function () {
        init();
        // 初始化
        createUI2();
    }
})();
